Simplify the Xen genapic code. Many genapic hooks have been
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 4 Apr 2006 14:00:41 +0000 (15:00 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Tue, 4 Apr 2006 14:00:41 +0000 (15:00 +0100)
commitc8a220e4f7659f1824ee6c4e426aed745468f59c
treeaa58d86d34256b911ec7220df5dd9d93fc98f082
parent295b4af4a1d4869f6b9990c4312a4397bf9429d3
Simplify the Xen genapic code. Many genapic hooks have been
replaced with unconditional static 'sane' implementations.
Functions relating to interrupt/IPI delivery have been
grouped into two sets: physical delivery and logical-flat
delivery. All subarchitectures use physical delivery except
the basic default subarchitecture.

The main behavioural changes are:
 1. Summit no longer uses logical-clustered delivery mode
 2. Physical mode no longer makes any pretence to set the
    LDR sanely. We never deliver interrupts in logical mode
    so this really should not matter.
 3. Sanity checking of phys_cpu_present_map is enabled
    for all subarchitectures. Really we should have a sane
    set of APIC IDs in the system, as we rely on them for
    physical delivery mode.
 4. We enable 'bigsmp' mode on any system with more than
    eight CPUs. The previous xAPIC check was unnecessary,
    since our bigsmp mode uses physical delivery, not
    logical-clustered.

This all obviously needs testing on some big systems.

Signed-off-by: Keir Fraser <keir@xensource.com>
24 files changed:
xen/arch/x86/apic.c
xen/arch/x86/cpu/common.c
xen/arch/x86/genapic/Makefile
xen/arch/x86/genapic/bigsmp.c
xen/arch/x86/genapic/default.c
xen/arch/x86/genapic/delivery.c [new file with mode: 0644]
xen/arch/x86/genapic/es7000.c
xen/arch/x86/genapic/summit.c
xen/arch/x86/io_apic.c
xen/arch/x86/mpparse.c
xen/arch/x86/nmi.c
xen/arch/x86/smp.c
xen/arch/x86/smpboot.c
xen/arch/x86/x86_32/entry.S
xen/include/asm-x86/apicdef.h
xen/include/asm-x86/genapic.h
xen/include/asm-x86/ipi.h [new file with mode: 0644]
xen/include/asm-x86/mach-bigsmp/mach_apic.h [deleted file]
xen/include/asm-x86/mach-default/mach_apic.h [deleted file]
xen/include/asm-x86/mach-es7000/mach_apic.h [deleted file]
xen/include/asm-x86/mach-generic/mach_apic.h
xen/include/asm-x86/mach-summit/mach_apic.h [deleted file]
xen/include/asm-x86/mach-summit/mach_mpparse.h
xen/include/asm-x86/mach_ipi.h [deleted file]